package br.unirio.octopus.util;

import static org.hamcrest.CoreMatchers.not;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertThat;

import org.junit.Before;
import org.junit.Test;

public class TesteDeManipuladorDeHash {
	
	private String textoNaoCriptografado;
	private String textoCriptografado;
	
	private static String TEXTO_NAO_CODIFICADO = "TesteSenha";
	private static String PEQUENA_VARIACAO_DE_TEXTO_NAO_CODIFICADO = "Testesenha";
	private static String TEXTO_CODIFICADO = "f49ce8a67e14c0b75f7bd20158853a9e5854dc17774fcf935ba58eb56e7a2fe";
	
	@Before
	public void prepararTeste()
	{
		
	}
	
	@Test
	public void testaObterHash()
	{
		ManipuladorDeHash manipulador = ManipuladorDeHash.getManipuladorDeHash();
		String textoCodificado = manipulador.obterHash(TEXTO_NAO_CODIFICADO);
		String variacaoDeTextoCodificado = manipulador.obterHash(PEQUENA_VARIACAO_DE_TEXTO_NAO_CODIFICADO);
		assertThat(textoCodificado, not(variacaoDeTextoCodificado));
		assertEquals(TEXTO_CODIFICADO, textoCodificado);
		
	}
	
	@Test
	public void testaVerificarIgualdade()
	{
		ManipuladorDeHash manipulador = ManipuladorDeHash.getManipuladorDeHash();
		String textoCodificado = manipulador.obterHash(TEXTO_NAO_CODIFICADO);
		boolean resultado = manipulador.verificarIgualdade(TEXTO_NAO_CODIFICADO, textoCodificado);
		assertEquals(true, resultado);
		boolean segundoResultado = manipulador.verificarIgualdade(PEQUENA_VARIACAO_DE_TEXTO_NAO_CODIFICADO, textoCodificado);
		assertEquals(false, segundoResultado);
		
	}

}
